﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XuanXiang.Infrastructure.Attr;
using XuanXiang.Infrastructure.Dto.Request;
using XuanXiang.Infrastructure.Dto.Request.Login;
using XuanXiang.Infrastructure.Dto.Request.Supplier;
using XuanXiang.Infrastructure.Dto.Response;
using XuanXiang.Infrastructure.Dto.Response.Supplier;
using XuanXiang.Infrastructure.EFCore.MySql;

namespace XuanXiang.Service.Interface
{
    [Provider_]
    public interface I_Supplier_Service
    {
        /// <summary>
        /// 新增供应商
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Add_Supplier(Supplier_Add_Dto dto);

        /// <summary>
        /// 检查供应商登录
        /// </summary>
        /// <param name="v"></param>
        /// <returns></returns>
        Supplier_Dto Check_Supplier_Login(string code,string account);

        /// <summary>
        /// 删除供应商
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Delete_Supplier(string? id);

        /// <summary>
        /// 获取单个供应商
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_Single_Supplier(string? id);

        /// <summary>
        /// 获取供应商
        /// </summary>
        /// <param name="fenye_Dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_Supplier(Fenye_Dto fenye_Dto);

        /// <summary>
        /// 获取供应商所有的类别
        /// </summary>
        /// <param name="fenye_Dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_Supplier_AllType(Fenye_Dto fenye_Dto);

        /// <summary>
        /// 获取供应商的商品
        /// </summary>
        /// <param name="fenye_Dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_Supplier_Goods(Fenye_Dto fenye_Dto);

        /// <summary>
        /// 获取供应商的订单
        /// </summary>
        /// <param name="fenye_Dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_Supplier_Order(Fenye_Dto fenye_Dto);

        /// <summary>
        /// 获取供应商畅销商品
        /// </summary>
        /// <param name="fenye_Dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_Supplier_Orders(Fenye_Dto fenye_Dto);

        /// <summary>
        /// 供应商的禁用/启用
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> IsBan_Supplier(IsBan_Dto dto);

        /// <summary>
        /// 供应商-确认/拒绝接单
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_AcceptOrder(IsBan_Dto dto);

        /// <summary>
        /// 供应商-新增商品
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_AddGoods(Supplier_AddGoods_Dto dto);

        /// <summary>
        /// 供应商-商品补货
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_AddInventory(Supplier_AddInventory_Dto dto);

        /// <summary>
        /// 供应商-新增商品类别
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_AddType(Supplier_AddType_Dto dto);

        /// <summary>
        /// 供应商-取消订单
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_CancelOrder(IsBan_Dto dto);

        /// <summary>
        /// 供应商-取消商品折扣
        /// </summary>
        /// <param name="gid"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_CancelPromoteGoods(string? gid);

        /// <summary>
        /// 供应商-删除商品类型
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_DeleteGoodsType(string? id);

        /// <summary>
        /// 供应商-获取指定日期的订单数据
        /// </summary>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_GetDateOrderData(DateTime? startTime, DateTime? endTime);

        /// <summary>
        /// 供应商-获取我的订单数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_GetOrderData(string? id);


        /// <summary>
        /// 供应商-获取销售数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_GetSalesData(string? id);

        /// <summary>
        /// 供应商-上下架商品
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_isShelveGoods(IsBan_Dto dto);

        /// <summary>
        /// 供应商登录
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_Logins(Login_dto dto);

        /// <summary>
        /// 供应商订单-发货/取消发货
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_SendOrder(IsBan_Dto dto);

        /// <summary>
        /// 供应商设置活动商品
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_SetPromoteGoods(Supplier_SetPromoteGoods_Dto dto);

        /// <summary>
        /// 供应商-编辑商品类型
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Supplier_UpdateGoodsType(Supplier_Update_Type_Dto dto);
    }
}
